package br.com.bd2.hibernate.model;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class TesteBD2 {
	public static void main(String[] args) {
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("BD2");
		EntityManager em = emf.createEntityManager();

		Holding holding1 = new Holding();
		Holding holding2 = new Holding();
		
		Empresa empresa1 = new Empresa();
		Empresa empresa2 = new Empresa();
		
		Loja loja1 = new Loja();
		Loja loja2 = new Loja();
		
		Departamento departamento1 = new Departamento();
		Departamento departamento2 = new Departamento();
		Departamento departamento3 = new Departamento();
		
		Secao secao1 = new Secao();
		Secao secao2 = new Secao();
		Secao secao3 = new Secao();
		
		Categoria categoria1 = new Categoria();
		Categoria categoria2 = new Categoria();
		
		Grade grade1 = new Grade();
		Grade grade2 = new Grade();
		
		GradeItem gradeitem1 = new GradeItem();
		GradeItem gradeitem2 = new GradeItem();
		
		Tamanho tamanho1 = new Tamanho();
		Cor cor = new Cor();
	
		Produto produto1 = new Produto();
		Produto produto2 = new Produto();
		Produto produto3 = new Produto();
		Produto produto4 = new Produto();
		
		EstoqueGradeItem estoqueGradeItem1 = new EstoqueGradeItem();
		EstoqueGradeItem estoqueGradeItem2 = new EstoqueGradeItem();
		EstoqueGradeItem estoqueGradeItem3 = new EstoqueGradeItem();
		EstoqueGradeItem estoqueGradeItem4 = new EstoqueGradeItem();
		EstoqueGradeItem estoqueGradeItem5 = new EstoqueGradeItem();	
		EstoqueGradeItem estoqueGradeItem6 = new EstoqueGradeItem();			
		
		holding1.setCodigoHolding(Long.parseLong("1"));
		holding1.setNome("holding teste");
		
		holding2.setCodigoHolding(Long.parseLong("2"));
		holding2.setNome("holding teste 2");
		
		empresa1.setCodigoEmpresa(Long.parseLong("1"));
		empresa1.setHolding(holding1);
		empresa1.setRazaoSocial("razao social empresa 1");
		empresa1.setFantasia("nome fantasia empresa1");
		
		empresa2.setCodigoEmpresa(Long.parseLong("2"));
		empresa2.setHolding(holding2);
		empresa2.setRazaoSocial("razao social empresa 2");
		empresa2.setFantasia("nome fantasia empresa2");

		loja1.setCodigoLoja(Long.parseLong("1"));
		loja1.setNome("loja 1");
		loja1.setEmpresa(empresa1);
		
		loja2.setCodigoLoja(Long.parseLong("1"));
		loja2.setNome("loja 2");
		loja2.setEmpresa(empresa2);		
		
		departamento1.setCodigoDepartamento(Long.parseLong("1"));
		departamento1.setLoja(loja1);
		departamento1.setNome("departamento1 loja 1");

		departamento2.setCodigoDepartamento(Long.parseLong("2"));
		departamento2.setLoja(loja1);
		departamento2.setNome("departamento2 loja 1");

		departamento3.setCodigoDepartamento(Long.parseLong("1"));
		departamento3.setLoja(loja2);
		departamento3.setNome("departamento 1 loja 2");
		
		secao1.setCodigoSecao(Long.parseLong("1"));
		secao1.setDepartamento(departamento1);
		secao1.setNome("secao1 dep 1");
		
		secao2.setCodigoSecao(Long.parseLong("1"));
		secao2.setDepartamento(departamento2);
		secao2.setNome("secao1 dep 2");
		
		secao3.setCodigoSecao(Long.parseLong("1"));
		secao3.setDepartamento(departamento3);
		secao3.setNome("secao1 dep 3");		
		
		categoria1.setCodigoCategoria(Long.parseLong("1"));
		categoria1.setSecao(secao1);
		categoria1.setNome("categoria 1 secao 1");
		
		categoria2.setCodigoCategoria(Long.parseLong("1"));
		categoria2.setSecao(secao2);
		categoria2.setNome("categoria 1 secao 2");	
		
		grade1.setCodigoGrade(Long.parseLong("1"));
		grade1.setNome("teste grade 1");
		
		grade2.setCodigoGrade(Long.parseLong("2"));
		grade2.setNome("teste grade 2");
		
		produto1.setCodigoProduto(Long.parseLong("1"));
		produto1.setCategoria(categoria1);
		produto1.setGrade(grade1);
		produto1.setEstoqueAtual(10);
		produto1.setEstoqueMinimo(5);
		produto1.setNome("produto 1");
		
		produto2.setCodigoProduto(Long.parseLong("2"));
		produto2.setCategoria(categoria1);
		produto2.setGrade(grade1);
		produto2.setEstoqueAtual(20);
		produto2.setEstoqueMinimo(10);
		produto2.setNome("produto 2");		

		produto3.setCodigoProduto(Long.parseLong("3"));
		produto3.setCategoria(categoria2);
		produto3.setGrade(grade2);
		produto3.setEstoqueAtual(30);
		produto3.setEstoqueMinimo(20);
		produto3.setNome("produto 3");	
		
		produto4.setCodigoProduto(Long.parseLong("4"));
		produto4.setCategoria(categoria2);
		produto4.setGrade(grade2);
		produto4.setEstoqueAtual(40);
		produto4.setEstoqueMinimo(30);
		produto4.setNome("produto 4");	
		
		cor.setCodigoCor(Long.parseLong("1"));
		cor.setNome("branco");		
		
		tamanho1.setCodigoTamanho(Long.parseLong("1"));
		tamanho1.setNome("40");
		
		gradeitem1.setCodigoGradeItem(Long.parseLong("1"));
		gradeitem1.setGrade(grade1);
		gradeitem1.setCor(cor);
		gradeitem1.setTamanho(tamanho1);
		gradeitem1.setNome("grade item 1");
		
		gradeitem2.setCodigoGradeItem(Long.parseLong("2"));
		gradeitem2.setGrade(grade2);
		gradeitem2.setCor(cor);
		gradeitem2.setTamanho(tamanho1);
		gradeitem2.setNome("grade item 2");	
		
		estoqueGradeItem1.setGradeItem(gradeitem1);
		estoqueGradeItem1.setLoja(loja1);
		estoqueGradeItem1.setProduto(produto1);

		estoqueGradeItem2.setGradeItem(gradeitem1);
		estoqueGradeItem2.setLoja(loja1);
		estoqueGradeItem2.setProduto(produto2);
		
		estoqueGradeItem3.setGradeItem(gradeitem2);
		estoqueGradeItem3.setLoja(loja2);
		estoqueGradeItem3.setProduto(produto3);		
		
		estoqueGradeItem4.setGradeItem(gradeitem2);
		estoqueGradeItem4.setLoja(loja2);
		estoqueGradeItem4.setProduto(produto4);

		estoqueGradeItem5.setGradeItem(gradeitem1);
		estoqueGradeItem5.setLoja(loja2);
		estoqueGradeItem5.setProduto(produto3);

		estoqueGradeItem6.setGradeItem(gradeitem2);
		estoqueGradeItem6.setLoja(loja1);
		estoqueGradeItem6.setProduto(produto4);		
		
		em.getTransaction().begin();

		em.persist(holding1);
		em.persist(holding2);
		em.persist(empresa1);
		em.persist(empresa2);
		em.persist(loja1);
		em.persist(loja2);
		em.persist(departamento1);
		em.persist(departamento2);		
		em.persist(departamento3);
		em.persist(secao1);
		em.persist(secao2);
		em.persist(secao3);
		em.persist(categoria1);		
		em.persist(categoria2);		
		em.persist(grade1);		
		em.persist(grade2);
		em.persist(cor);
		em.persist(tamanho1);
		em.persist(gradeitem1);
		em.persist(gradeitem2);
		em.persist(produto1);
		em.persist(produto2);		
		em.persist(produto3);
		em.persist(produto4);		
		em.persist(estoqueGradeItem1);
		em.persist(estoqueGradeItem2);		
		em.persist(estoqueGradeItem3);
		em.persist(estoqueGradeItem4);		
		em.persist(estoqueGradeItem5);
		em.persist(estoqueGradeItem6);				
		
		em.getTransaction().commit();        
	}
}
